// app/utils/utils.go
package utils

import (
	"encoding/json"
	"fmt"
)

func FeiShuAlarm(alarmMsg string) error {
	apiURL := "https://open.feishu.cn/open-apis/bot/v2/hook/1de5bb34-a10e-425d-853d-79390e9e2bf5" // 告警群的告警机器人

	// 构建请求参数
	type Content struct {
		Text string `json:"text"` // 嵌套对象中的字段
	}

	requestBody := struct {
		MsgType string  `json:"msg_type"`
		Content Content `json:"content"` // 改为嵌套结构体类型
	}{
		MsgType: "text",
		Content: Content{
			Text: alarmMsg,
		}, // 初始化嵌套对象
	}

	// 设置请求头
	headers := map[string]string{
		"Content-Type": "application/json",
	}

	// 定义响应结构
	var response struct {
		Code          int             `json:"code"`
		Data          json.RawMessage `json:"data"`
		Msg           string          `json:"msg"`
		StatusCode    int             `json:"StatusCode"`
		StatusMessage string          `json:"StatusMessage"`
	}

	// 发送请求
	if err := Post(apiURL, requestBody, headers, &response); err != nil {
		return fmt.Errorf("请求失败: %w", err)
	}

	// 处理错误码
	if response.Code != 0 {
		return fmt.Errorf("飞书告警发送 错误[%d]: %s", response.Code, response.Msg,
			apiURL, requestBody, headers,
		)
	}

	fmt.Println("飞书告警发送 ", alarmMsg)
	return nil
}
